
#pragma once

#include <d3d9.h>
#include <stdint.h>
#include <vector>

namespace FlameEngine
{

	class IGeometryPacket
	{
	public:
		virtual int32_t GetPrimitiveCount(){return m_primitiveCount;}
		virtual D3DPRIMITIVETYPE GetPrimitiveType(){return m_primitiveType;}
		virtual void DrawPrimitive(IDirect3DDevice9* pDevice) = 0;

	protected:
		int32_t m_primitiveCount;
	};

	class VertexStream
	{
		int8_t m_streamIdx;
		int16_t m_vertexStride;
		int32_t m_vertexOffset;
		IDirect3DVertexBuffer9* m_pVertexBuffer;
	}

	class IndexStream
	{
		int32_t m_indexOffset;
		IDirect3DIndexBuffer9* m_pIndexBuffer;
	};

	

	class IRenderable
	{
	public:
		void FillRenderQueue()
	};


	class CadModelEntity:IRenderable
	{
	public:
		void SetEffect();
		void SetMaterial();
	};


}